import {
	Controller, // 控制器装饰器
	Get, // 处理 GET 请求的装饰器
	Post, // 处理 POST 请求的装饰器
	Body, // 提取请求体的装饰器
	Query, // 提取查询参数的装饰器
} from '@nestjs/common';
import { CreateCatDto } from './dto/create-cat.dto'; // 导入创建猫咪的 DTO 类型
import { QueryCatListDto } from './dto/query-cat-list.dto'; // 导入查询猫咪列表的 DTO 类型
import { CatsService } from './cat.service'; // 导入猫咪服务
import type { Cat } from './interfaces/cat.interface'; // 导入猫咪接口类型
/**
 * 猫咪控制器
 * 处理与猫咪相关的 HTTP 请求
 *
 * 路由前缀: /cats
 */
@Controller('cats')
export class CatsController {
	constructor(private catsService: CatsService) {}

	/**
	 * 创建新猫咪
	 * POST /cats
	 */
	@Post('/create')
	create(@Body() createCatDto: CreateCatDto) {
		this.catsService.create(createCatDto);
		return { message: '猫咪创建成功', data: createCatDto };
	}

	/**
	 * 获取所有猫咪
	 * GET /cats
	 */
	@Get('queryList')
	findAll(@Query() query: QueryCatListDto): Cat[] {
		return this.catsService.findAll(query);
	}

	/**
	 * 获取配置信息
	 * GET /cats/config
	 * 展示全局配置和模块配置的使用情况
	 */
	@Get('config')
	getConfig() {
		return {
			message: '配置信息获取成功',
			data: this.catsService.getConfigInfo(),
		};
	}
}
